1. Field of the Invention
The present invention relates generally to a bar code reading apparatus for reading a bar code consisting of blocks of data characters surrounded with discriminating bars having fixed patterns. The present invention relates more particularly to a bar code reading apparatus for reading a coupon code consisting of a combination of two types of bar codes each according to a different code system.
2. Description of the Prior Art
A practice of managing commercial goods, etc. by using bar codes has been popularized in recent years as represented by a POS system in a distribution business, etc. For example, in the POS system of a store such items of data as kinds, sales prices, etc. of the goods are encoded in a bar code format, and such data are printed on the goods. Then, the price is paid based on the read the bar code at a cash register, and the numbers of sold goods are added up in real time, which might be useful for stocking and purchasing managements.
By the way, the above bar code is classified roughly into a fixed length code such as a WPC code, a JAN code, a UPC code and an EAN code, and a variable length second code such as an ITF (Interleaved Two of Five) code, CODE 39, NW 7 and CODE 128. FIG. 20 shows a structure of the WPC code as a fixed length code and a structure of the CODE 128 as a variable length code. As illustrated in FIG. 20, the WPC code has a start guard bar (LGB) attached to a left edge, a center bar (CB) inserted in an intermediate portion and an end guard bar (RGB) attached to a right edge. The WPC code includes a left block consisting of six data characters between the start guard bar and the center bar. The WPC code also includes a right block consisting of six data characters between the center bar and the end guard bar. These guard bars and the center bar have patterns previously fixedly determined by the WPC code system. The bar code reading apparatus is therefore capable of discriminating these guard bars and the center bar from other data and also recognizing this bar code as the WPC code. Further, the CODE 128 code has a start code attached to a left edge and a stop code attached to a right edge. The CODE 128 code includes a variable length data characters between the start code and the stop code. These start and stop codes have patterns previously fixedly determined by the CODE 128 code system. The bar code reading apparatus is therefore capable of discriminating the start and stop codes from other data and recognizing this bar code as the CODE 128 code.
As explained above, there must be a restriction in terms of the number of data characters of the fixed length code, and hence there must be a limit in terms of a quantity of data that can be encoded. Under such circumstances, there is used a coupon code in which the quantity of data to be encoded is increased by adding a variable length code as a supplemental code to the fixed length code. FIG. 20 illustrates an example of the coupon code in which the WPC code is set as a first code (the bar code on the left side), and the CODE 128 code is set as a second code (the bar code on the right side). The following is an explanation using an example of the thus structured coupon code.
The conventional bar code reading apparatus must scan the bar code at least twice as shown in FIG. 20 when reading the above coupon code. More specifically, bar width data (electrical data obtained by photoelectrically reading brightness/darkness of the bar code) obtained by a first bar code scan (1), is demodulated based on a demodulation algorithm according to the WPC code system. Subsequently, bar width data obtained by a next bar code scan (2) is demodulated based on the demodulation algorithm according to the CODE 128 code system. Then, there are repeatedly performed the bar code scan for effecting the demodulation based on the above WPC code system and the bar code scan for effecting the demodulation based on the CODE 128 code system. After completing the demodulation of the whole WPC code and the demodulation of the whole CODE 128 bar code, pieces of demodulated data of the two bar codes are combined, thereby the demodulated data corresponding to the coupon code are regenerated.
However, the above-mentioned conventional coupon code reading system has such a problem that a whole processing time is required too much because of serially switching over the bar code demodulation algorithm for every single bar code scan.
To be specific, when the demodulation algorithm based on the WPC code system is executed, only the demodulation algorithm in the WPC code system is executed on all bar width data obtained by the bar code scan effected that time. Accordingly, even if picked-up data of the second code is contained in the picked-up bar width data because of the scan trajectory of the bar code scan of that time passing through above the second code, the second code is by no means demodulated, but such data are recognized as only noises. Similarly, when the demodulation algorithm based on the CODE 128 code system is executed, only the demodulation algorithm based on the CODE 128 code system is executed on all bar width data obtained by the bar code scan of that time. Hence, even if the picked-up data of the WPC code are contained in the picked-up bar width data because of the scan trajectory of the bar code scan of that time passing through above the WPC code, the WPC code is by no means demodulated, and such data are recognized as only noises.
Thus, a certain bar code happens to be scanned, and the bar width data set is obtained. Even in such a case, if the code system of that bar code does not coincide with the code system of the demodulation algorithm executed that time, the same bar width data set is discarded without being demodulated. Further, the demodulating process executed that time comes to an absolute futility. A period of futility of the demodulating process occupies theoretically a half the entire demodulating process period, and consequently the whole processing time elongates in the conventional bar code reading system.
In particular, the second code is defined as a truncate label having its narrow width. Accordingly, there must be extremely a small number of bar width data sets each containing both of the start code and the stop code among the bar width data sets obtained by scanning the bar code in a variety of directions with, e.g., a fixed type scanning device. Hence, if the bar width data sets corresponding to the whole second code with an originally low probability to be obtained come to the futility, the whole processing time further elongates.